上篇我们学习了python的字符串类型,了解了字符串的不变性,今天我们接着学习新的数据类型-列表,列表也是序列式的数据类型,跟字符串一样,支持下标和切片操作,但列表跟字符串不同的是它是可变类型,就是它是可以改变的,这个数据类型在后续我们编程中用的非常的多,比如将读出的IP放到列表中,然后读取执行,这些后续我们写实际脚本时再说,我们先从最基础的,如何创建列表开始:
1、创建列表方式,一种是用[],一种是用list()函数,这二种方法都可以创建一个列表,如下:
1 2 3 4 5 6 7 8 9 10 |
>>> lis = [] >>> lis [] >>> lis = [1,2,3,'a','c'] >>> lis [1, 2, 3, 'a', 'c'] >>> st = 'abcdef' >>> stlis = list(st) >>> stlis ['a', 'b', 'c', 'd', 'e', 'f'] |
如果[]里什么都没有,就创建了一个空列表,在列表里的内容称为列表元素,元素类型可以使python支持的标准类型。
2、列表的元素数据访问,刚开始我们也说了,列表是序列类型,所以它支持切片和下标的访问,例子如下:
1 2 3 4 5 6 7 8 |
>>> stlis[0] 'a' >>> stlis[0:4] ['a', 'b', 'c', 'd'] >>> stlis[-1:] ['f'] >>> stlis[-3:-1] ['d', 'e'] |
因为这个跟字符串操作非常类似,所以我们不在多说。
3、列表操作函数
关于列表的操作有很多的方便可用的函数,这里我们跟字符串一样,也挑一些比较常用的来举例说明下,其它函数如果后续用到我们再说。
append()函数: 作用是添加列表的元素在尾部,接收一个参数,然后将改元素加入列表的尾部,举例如下:
1 2 3 |
>>> lis.append('d') >>> lis [1, 2, 3, 'a', 'c', 'd'] |
extend()函数:作用是扩展一个列表,这个函数类似把两个列表相加,例如:
1 2 3 4 5 6 |
>>> lis [1, 2, 3, 'a', 'c', 'd'] >>> others = ['e','f'] >>> lis.extend(others) >>> lis [1, 2, 3, 'a', 'c', 'd', 'e', 'f'] |
remove() : 作用根据指定的值删除一个元素,当列表元素被删除后,位于它后面的元素自动迁移,然后列表长度减一,举例:
1 2 3 4 5 |
>>> lis [1, 2, 3, 'a', 'c', 'd', 'e', 'f'] >>> lis.remove(1) >>> lis [2, 3, 'a', 'c', 'd', 'e', 'f'] |
pop():这个函数会返回指定下标位置的元素,如果不给指定下标,它默认使用-1,例如pop(0)返回列表的头元素,pop()返回列表的尾部元素,但这个函数在获取后就会自动将这个元素在列表中删除,例如:
1 2 3 4 5 6 7 8 9 10 |
>>> lis [2, 3, 'a', 'c', 'd', 'e', 'f'] >>> lis.pop() 'f' >>> lis [2, 3, 'a', 'c', 'd', 'e'] >>> lis.pop(0) 2 >>> lis [3, 'a', 'c', 'd', 'e'] |
如果这个函数不带参数会比较有意思,因为它跟append()函数的作用相反,一个是从尾部加,一个是从尾部减,这个结构就是大学数据结构课程中的-栈,即后进先出,可以假设有个空列表,运行append()就是压栈的操作,pop()就是出栈的操作,那如果加入下标0,即pop(0),那这样列表就形成了一个队列,跟去公园买票排队一样,先进来的先出去,即先进先出,这也是一种队列方式,这两种方式在后续编程中非常有用,如果后续我们有用到,我们会详细说。
count()函数用来统计列表中元素的重复个数,如果我们生成了一个列表,想要获取某元素在列表中出现的次数,可以用这个函数,例如:
1 2 3 4 5 6 |
>>> lis [3, 'a', 'c', 'd', 'e', 'e'] >>> lis.count('e') 2 >>> lis.count(3) 1 |
len()函数,跟字符串的len函数功能一样,返回列表的长度,这个比较简单就不多说了。
1 2 3 4 |
>>> len(lis) 6 >>> lis [3, 'a', 'c', 'd', 'e', 'e'] |
基本函数我们就说讲这么多,后续有特殊的我们详细再谈,接下来我们说一下列表的一些关系操作
4、列表关系操作,in, not in
关系操作就是检查判断一个对象是不是一个列表的成员,如果存在返回True, 否则返回False, 一般常用与条件语句中,例如:
1 2 3 4 5 6 7 8 |
>>> lis [3, 'a', 'c', 'd', 'e', 'e'] >>> 'a' in lis True >>> 'g' in lis False >>> 'g' not in lis True |
具体的条件语句我们后续会单独详细说,在这里就不展开了,这种关系操作后续编程中也非常有用。
5、列表转字符串操作
在日常处理列表中,有一个比较常见的操作就是要求将一个列表转成一个字符串,这里我们可以用join()函数实现,例如:
1 2 3 4 5 |
>>> lis ['a', 'c', 'd', 'e', 'e'] >>> >>> ''.join(lis) 'acdee' |
6、列表解析,这部分内容我们在讲循环的语句的时候会单独说,它在编程中也比较常用,这个功能可以让我们动态的生成列表。
写到这我们也基本把列表也说完了,除了这些数据类型,理解python的赋值语句(等于号)也非常关键,在最后我给出一个例子,请大家一起理解下这些语句的意义,如果有问题可以留言交流。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
>>> a = 'x' >>> lis = [a, 2] >>> lis ['x', 2] >>> lis = [a,2,"abc",False] >>> lis ['x', 2, 'abc', False] >>> a 'x' >>> b = 'y' >>> lis ['x', 2, 'abc', False] >>> a = b >>> a 'y' >>> lis ['x', 2, 'abc', False] >>> lis = [a, 2] >>> lis ['y', 2] |
关于列表的学习就到这里,欢迎大家留言交流,如果觉得还不错,请帮忙转发。